| Windows NT Architecture Objectives |

|
1. Overview: User Mode, Kernel Mode, Microkernel
2. Windows 32 Subsystem
3. NT Virtual Dos Machines
4. WOW - Windows on Windows
5. Very, very limited OS/2 and POSIX Support
| Windows NT Architecture |

|

Microkernel
- Schedules threads,and handles interrupts and exceptions. If
a computer has multiple CPU's, it
synchronizes activity among the processors to optimize performance. Microkernel can run
simultaneously on all processors in a multiprocessor configuration. Code in this system
must be
reentrant.
- Microkernel's code does not run in threads -- it is the only
part of the operating system that is not
preemptible or pageable.
| Windows 32 Subsystem |

|
Vital Stats
- Multiple execution threads for per process
- Processes' threads multitasked - threads are scheduled
preemptively.
- Each application is assigned a 2 GB continuous, nonsegmented
address space. The other 2GB is reserved for the OS.
- Within the Win32 Subsystem can exist VDMs or Virtual
DOS Machines. These are Win32
processes that support DOS applications.
- One application writes to another application's memory
(address) space (GPF = General Protection Fault). You bet Windows NT still has general
protection faults.
Using
REALTIME mode can interfere with the Windows NT operating system. Only those
users with Administrative rights can start programs in REALTIME mode.
| Virtual DOS Machines (NTVDM) |

|
Vital Stats
- NTVDM is a 32-bit Windows application that simulates an
Intel 486 computer running MS-DOS.
- Each MS-DOS application runs in a separate NTDVM process,
although all are named Ntvdm.exe by default.
- Each NTVDM runs in its own address space. This protects the
applications from each other and
protects the rest of the operating system from the NTVDMs.
- Every DOS application is given its own single-threaded VDM,
where it perceives itself as the
only process on the computer.
- DOS applications that make direct hardware-level function
calls are not allowed in Windows NT
- DOS applications do have an APPS.INF file in Windows NT
- AUTOEXEC.BAT? CONFIG.SYS? Nope. Default environment found
within a NTVDM can be configured by modifying the CONFIG.NT and AUTOEXEC.NT files. These
are the equivalent to the CONFIG.SYS and AUTOEXEC.BAT. PROPERTIES > PROGRAM TAB >
WINDOWS NT button > "Windows NT PIF Settings"
- The Resource Thief. When a DOS application terminates, the
VDM is not destroyed by NT and its memory and system pointers are maintained. When a
subsequent DOS application is launched, it assumes the existing VDM. Therefore, if
multiple DOS applications are launched concurrently and then exited, some system resources
will be tied up in maintaining each of the VDMs. VDMs are only destroyed by terminating
the VDM process itself or rebooting NT.
- WOW - Windows on Windows (AKA, 16 bit crap, uh, I mean app
land). Within an NTVDM, a WOW environment can exist that supports Win16 applications.
| WOW - Windows on Windows (16 bit apps) |

|
Vital Stats
- Windows 16-bit applications (Win16 applications) are
supported through a DOS application called Windows-On-Windows (WOW)
- Win16 bit applications run as a 32 bit process. WOW executes
within a NTVDM, which itself runs as a Win32 process. NTVDM is a 32 bit process = 1 thread
per NTVDM and multitasked preemptively. Configuration mimics Windows 3.x environment where
Windows runs on top of DOS.
- GPF? Of course. All Win16 applications operate within a
single instance of WOW, unlike DOS apps. Win16 apps share a memory space and computer
resources within WOW. Win16 applications can interact and interfere with other Win16
applications
- Can Windows 16 applications cause NT to hang? No. If Win16
application fails or corrupts the system resources of a WOW, this will not affect the
operation of NT itself or any other VDMs or Win32 processes. Win16 can cause other Win16
apps to hang if they are running in the same NTVDM.
- All applications within a Win16 WOW environment operate in a
cooperative multitasking
environmenteach app controls processing time until it chooses to release control.
However,
because WOW is within a VDM, which itself is a single-threaded Win32 process, the entire
WOW environment is preemptively multitasked with all other Win32 threads. Note: multiple
Win16 apps means there are multiple, separate threads executing within WOW
- Win16 applications are launched within the same instance of
WOW by default. However, it is
possible to launch Win16 applications in their own individual instances of WOW by:
- START [Start parameters] ApplicationName [Application
parameters]
- START /min /separate passtheexam.exe
- Run command and shortcut ; use the "run in separate
memory space checkbox"
- Drawback to running Win 16 apps in own instances: clipboard
data from one WOW app cannot be transferred into another WOW app because they no longer
share resource space.
...
run the two suite applications in the default NTVDM. Run all other applications in their
own
NTVDMs ...
| OS/2 and POSIX Subsystem |

|
Vital Stats
- Support is only for OS/2 1.x applications. No support for
2.x + GUI applications. Extension component enables some graphics support for the
launching of Presentation Manager. RISC computers do not have any support for OS/2
applications.
- Very limited support of POSIX. Therefore, most Unix
applications will not operate under the POSIX subsystem.